1. Field
Embodiments of the invention relate to the field of processing network traffic; and more specifically, to a dynamic mechanism to achieve distribution of multicast traffic on available active links of a link-aggregate-group.
2. Background
A link-aggregate-group (LAG) provides higher bandwidth between network nodes by combining multiple links onto a logical link. For example, eight-gigabit Ethernet links between two network nodes can be grouped into one eight-gigabit link. This grouping of links into a logical link increases the redundancy, reliability, and resiliency of the network. Of the multiple links that are available in the LAG, some of the links are active and forward traffic while the other links are standby for failover. Due to the availability of multiple active links, traffic can be transmitted on the active links.
One challenge is how a network element distributes traffic on the active links. Current implementations of distribute traffic on a LAG in a number of ways. (1) Irrespective of bandwidth need for a traffic stream, a network element chooses any active link to forward traffic by hashing on source and group address of the traffic stream or chooses links in a round robin fashion. (2) The network element statically configures bandwidth for each stream in the node, such that when a request comes for a traffic stream, the network element looks up the active link assigned to the requested traffic stream. (3) The network element calculates bandwidth utilization on each active link by adding byte stream of each packet forwarded on that link. (4) Alternatively, the network element keeps loading an active link with all streams until its bandwidth exhausts then move onto the next link.
Each of the existing ways described above have disadvantages. Choosing an active link based on hash or in round robin fashion can overload some active links and leave others underutilized. Statically configuring links requires administrative intervention with bandwidth requirements for a traffic stream changes. On the fly calculation of bandwidth utilization by adding bytes is very central processing unit (CPU) intensive. Loading one active link can cause more traffic interruption when that link goes down causing all the traffic streams to be moved to another active link. Where as distributing traffic over all available active links will cause less streams to be affected when an active link goes down.